﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Remoting.Messaging;

namespace NMoq.Core
{
    public class Invocation:IInvocation
    {
        #region IInvocation Members

        public bool ShouldInvokeCall
        { 
            get; 
            set; 
        }

        public bool HasIntercepted
        { 
            get; 
            set; 
        }

        public object Target
        { 
            get;
            set; 
        }

        public IMethodCallMessage MethodCallMessage
        {
            get;
            set;
        }

        public DataProviderResult ReturnResult
        {
            get;
            set;
        }

        public InterceptorActionAfterRead ActionAfterRead
        { 
            get; 
            set; 
        }

        public MethodMessageInfo GetMethodMessgeInfo()
        {
            return MethodMessageInfo.CreateMethodMessageInfo(MethodCallMessage, Target);
        }

        #endregion 
    }
}
